import type {
  EntityApi,
  EntityPage,
  EntityReq,
  EntityTotal,
  EntityModel,
  EntityExportReq,
  EntityKey,
} from "jmash-core";
export interface LogApi extends EntityApi {}

export interface LogReq extends EntityReq {
  // 租户
  tenant?: string;
  // 日志名称模糊查询（可选）
  likeLogName?: string;
  // 日志级别（可选）
  logLevel?: string;
  // 日志信息模糊查询（可选）
  likeLogMsg?: string;
  // 月份
  partition?: string;
  // 开始时间（可选）
  startCreateTime?: string;
  // 结束时间（可选）
  endCreateTime?: string;
}

// 用户管理分页
export interface LogPage extends EntityPage {
  // 页数
  curPage: number;
  // 条数
  pageSize: number;
  // 当前页内容
  results: Array<LogModel>;
  // 总记录数
  totalSize: number;
  // 本页小计
  subTotalDto: LogTotal;
  // 合计
  totalDto: LogTotal;
}

// 合计
export interface LogTotal extends EntityTotal {
  // 总记录数
  totalSize: number;
}

export interface YearForm {
  // 待删除的日志年份
  number: number;
}

// 操作日志主键
export interface LogKey extends EntityKey {
  // 租户
  tenant?: string;
  // 日志ID
  logId?: string;
  // 日志分区.
  partition?: number;
}

// 操作日志实体
export interface LogModel extends EntityModel {
  // 日志
  logId?: string;
  // 表分区
  partition?: number;
  // 日志名称
  logName?: string;
  // 日志级别
  logLevel?: string;
  // 日志信息
  logMsg?: string;
  // 环境参数
  envProps?: string;
  // 日志内容
  logContent?: string;
  // 用户IP
  userIp?: string;
  // 代理IP
  proxyIp?: string;
  // 创建人/用户ID
  createBy?: string;
  // 创建时间/操作时间
  createTime?: string;
}

// 导出请求
export interface LogExportReq extends EntityExportReq {
  // 租户
  tenant: string;
  // 标题
  title?: string;
  // 显示文件名
  fileName?: string;
  // 筛选条件
  req: LogReq;
}
